(0) Obligation:

Runtime Complexity TRS:
The TRS R consists of the following rules:

p(p(b(a(x0)), x1), p(x2, x3)) → p(p(b(x2), a(a(b(x1)))), p(x3, x0))

Rewrite Strategy: INNERMOST

(1) CpxTrsToCdtProof (BOTH BOUNDS(ID, ID) transformation)

Converted CpxTRS to CDT

(2) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(p(b(a(z0)), z1), p(z2, z3)) → p(p(b(z2), a(a(b(z1)))), p(z3, z0))
Tuples:

P(p(b(a(z0)), z1), p(z2, z3)) → c(P(p(b(z2), a(a(b(z1)))), p(z3, z0)), P(b(z2), a(a(b(z1)))), P(z3, z0))
S tuples:

P(p(b(a(z0)), z1), p(z2, z3)) → c(P(p(b(z2), a(a(b(z1)))), p(z3, z0)), P(b(z2), a(a(b(z1)))), P(z3, z0))
K tuples:none
Defined Rule Symbols:

p

Defined Pair Symbols:

P

Compound Symbols:

c

(3) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace P(p(b(a(z0)), z1), p(z2, z3)) → c(P(p(b(z2), a(a(b(z1)))), p(z3, z0)), P(b(z2), a(a(b(z1)))), P(z3, z0)) by

P(p(b(a(x0)), x1), p(x2, x3)) → c(P(p(b(x2), a(a(b(x1)))), p(x3, x0)), P(x3, x0))

(4) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(p(b(a(z0)), z1), p(z2, z3)) → p(p(b(z2), a(a(b(z1)))), p(z3, z0))
Tuples:

P(p(b(a(x0)), x1), p(x2, x3)) → c(P(p(b(x2), a(a(b(x1)))), p(x3, x0)), P(x3, x0))
S tuples:

P(p(b(a(x0)), x1), p(x2, x3)) → c(P(p(b(x2), a(a(b(x1)))), p(x3, x0)), P(x3, x0))
K tuples:none
Defined Rule Symbols:

p

Defined Pair Symbols:

P

Compound Symbols:

c

(5) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace P(p(b(a(x0)), x1), p(x2, x3)) → c(P(p(b(x2), a(a(b(x1)))), p(x3, x0)), P(x3, x0)) by

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(y2, y3))), z1), p(z2, p(b(a(y0)), y1))) → c(P(p(b(z2), a(a(b(z1)))), p(p(b(a(y0)), y1), p(y2, y3))), P(p(b(a(y0)), y1), p(y2, y3)))

(6) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(p(b(a(z0)), z1), p(z2, z3)) → p(p(b(z2), a(a(b(z1)))), p(z3, z0))
Tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(y2, y3))), z1), p(z2, p(b(a(y0)), y1))) → c(P(p(b(z2), a(a(b(z1)))), p(p(b(a(y0)), y1), p(y2, y3))), P(p(b(a(y0)), y1), p(y2, y3)))
S tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(y2, y3))), z1), p(z2, p(b(a(y0)), y1))) → c(P(p(b(z2), a(a(b(z1)))), p(p(b(a(y0)), y1), p(y2, y3))), P(p(b(a(y0)), y1), p(y2, y3)))
K tuples:none
Defined Rule Symbols:

p

Defined Pair Symbols:

P

Compound Symbols:

c

(7) CdtNarrowingProof (BOTH BOUNDS(ID, ID) transformation)

Use narrowing to replace P(p(b(a(p(y2, y3))), z1), p(z2, p(b(a(y0)), y1))) → c(P(p(b(z2), a(a(b(z1)))), p(p(b(a(y0)), y1), p(y2, y3))), P(p(b(a(y0)), y1), p(y2, y3))) by

P(p(b(a(p(z2, z3))), x2), p(x3, p(b(a(z0)), z1))) → c(P(p(b(x3), a(a(b(x2)))), p(p(b(z2), a(a(b(z1)))), p(z3, z0))), P(p(b(a(z0)), z1), p(z2, z3)))
P(p(b(a(p(x0, x1))), x2), p(x3, p(b(a(x4)), x5))) → c

(8) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(p(b(a(z0)), z1), p(z2, z3)) → p(p(b(z2), a(a(b(z1)))), p(z3, z0))
Tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(z2, z3))), x2), p(x3, p(b(a(z0)), z1))) → c(P(p(b(x3), a(a(b(x2)))), p(p(b(z2), a(a(b(z1)))), p(z3, z0))), P(p(b(a(z0)), z1), p(z2, z3)))
P(p(b(a(p(x0, x1))), x2), p(x3, p(b(a(x4)), x5))) → c
S tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(z2, z3))), x2), p(x3, p(b(a(z0)), z1))) → c(P(p(b(x3), a(a(b(x2)))), p(p(b(z2), a(a(b(z1)))), p(z3, z0))), P(p(b(a(z0)), z1), p(z2, z3)))
P(p(b(a(p(x0, x1))), x2), p(x3, p(b(a(x4)), x5))) → c
K tuples:none
Defined Rule Symbols:

p

Defined Pair Symbols:

P

Compound Symbols:

c, c

(9) CdtLeafRemovalProof (BOTH BOUNDS(ID, ID) transformation)

Removed 1 trailing nodes:

P(p(b(a(p(x0, x1))), x2), p(x3, p(b(a(x4)), x5))) → c

(10) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(p(b(a(z0)), z1), p(z2, z3)) → p(p(b(z2), a(a(b(z1)))), p(z3, z0))
Tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(z2, z3))), x2), p(x3, p(b(a(z0)), z1))) → c(P(p(b(x3), a(a(b(x2)))), p(p(b(z2), a(a(b(z1)))), p(z3, z0))), P(p(b(a(z0)), z1), p(z2, z3)))
S tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(z2, z3))), x2), p(x3, p(b(a(z0)), z1))) → c(P(p(b(x3), a(a(b(x2)))), p(p(b(z2), a(a(b(z1)))), p(z3, z0))), P(p(b(a(z0)), z1), p(z2, z3)))
K tuples:none
Defined Rule Symbols:

p

Defined Pair Symbols:

P

Compound Symbols:

c

(11) CdtForwardInstantiationProof (BOTH BOUNDS(ID, ID) transformation)

Use forward instantiation to replace P(p(b(a(p(z2, z3))), x2), p(x3, p(b(a(z0)), z1))) → c(P(p(b(x3), a(a(b(x2)))), p(p(b(z2), a(a(b(z1)))), p(z3, z0))), P(p(b(a(z0)), z1), p(z2, z3))) by

P(p(b(a(p(a(y2), z1))), z2), p(z3, p(b(a(z4)), z5))) → c(P(p(b(z3), a(a(b(z2)))), p(p(b(a(y2)), a(a(b(z5)))), p(z1, z4))), P(p(b(a(z4)), z5), p(a(y2), z1)))
P(p(b(a(p(z0, z1))), z2), p(a(y2), p(b(a(z4)), z5))) → c(P(p(b(a(y2)), a(a(b(z2)))), p(p(b(z0), a(a(b(z5)))), p(z1, z4))), P(p(b(a(z4)), z5), p(z0, z1)))
P(p(b(a(p(z0, p(b(a(y4)), y5)))), z2), p(z3, p(b(a(p(y0, y1))), z5))) → c(P(p(b(z3), a(a(b(z2)))), p(p(b(z0), a(a(b(z5)))), p(p(b(a(y4)), y5), p(y0, y1)))), P(p(b(a(p(y0, y1))), z5), p(z0, p(b(a(y4)), y5))))

(12) Obligation:

Complexity Dependency Tuples Problem
Rules:

p(p(b(a(z0)), z1), p(z2, z3)) → p(p(b(z2), a(a(b(z1)))), p(z3, z0))
Tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(a(y2), z1))), z2), p(z3, p(b(a(z4)), z5))) → c(P(p(b(z3), a(a(b(z2)))), p(p(b(a(y2)), a(a(b(z5)))), p(z1, z4))), P(p(b(a(z4)), z5), p(a(y2), z1)))
P(p(b(a(p(z0, z1))), z2), p(a(y2), p(b(a(z4)), z5))) → c(P(p(b(a(y2)), a(a(b(z2)))), p(p(b(z0), a(a(b(z5)))), p(z1, z4))), P(p(b(a(z4)), z5), p(z0, z1)))
P(p(b(a(p(z0, p(b(a(y4)), y5)))), z2), p(z3, p(b(a(p(y0, y1))), z5))) → c(P(p(b(z3), a(a(b(z2)))), p(p(b(z0), a(a(b(z5)))), p(p(b(a(y4)), y5), p(y0, y1)))), P(p(b(a(p(y0, y1))), z5), p(z0, p(b(a(y4)), y5))))
S tuples:

P(p(b(a(z0)), z1), p(a(y0), z3)) → c(P(p(b(a(y0)), a(a(b(z1)))), p(z3, z0)), P(z3, z0))
P(p(b(a(p(a(y2), z1))), z2), p(z3, p(b(a(z4)), z5))) → c(P(p(b(z3), a(a(b(z2)))), p(p(b(a(y2)), a(a(b(z5)))), p(z1, z4))), P(p(b(a(z4)), z5), p(a(y2), z1)))
P(p(b(a(p(z0, z1))), z2), p(a(y2), p(b(a(z4)), z5))) → c(P(p(b(a(y2)), a(a(b(z2)))), p(p(b(z0), a(a(b(z5)))), p(z1, z4))), P(p(b(a(z4)), z5), p(z0, z1)))
P(p(b(a(p(z0, p(b(a(y4)), y5)))), z2), p(z3, p(b(a(p(y0, y1))), z5))) → c(P(p(b(z3), a(a(b(z2)))), p(p(b(z0), a(a(b(z5)))), p(p(b(a(y4)), y5), p(y0, y1)))), P(p(b(a(p(y0, y1))), z5), p(z0, p(b(a(y4)), y5))))
K tuples:none
Defined Rule Symbols:

p

Defined Pair Symbols:

P

Compound Symbols:

c

(13) CpxTrsMatchBoundsTAProof (EQUIVALENT transformation)

A linear upper bound on the runtime complexity of the TRS R could be shown with a Match-Bound[TAB_LEFTLINEAR,TAB_NONLEFTLINEAR] (for contructor-based start-terms) of 0.

The compatible tree automaton used to show the Match-Boundedness (for constructor-based start-terms) is represented by:
final states : [1]
transitions:
b0(0) → 0
a0(0) → 0
p0(0, 0) → 1

(14) BOUNDS(O(1), O(n^1))